//package com.xk.school_device;
//
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//import java.sql.*;
//import java.util.ArrayList;
//import java.util.List;
//
//public class CodeGenerator {
//    // 数据库配置（修改为你实际的配置）
//    private static final String JDBC_URL = "jdbc:mysql://localhost:3306/campus_device_management?useSSL=false&characterEncoding=utf8";
//    private static final String JDBC_USERNAME = "root";
//    private static final String JDBC_PASSWORD = "123456";
//
//    public static void main(String[] args) {
//        // 获取数据库所有表名
//        List<String> tables = getAllTables();
//
//        // 初始化生成器
//        AutoGenerator generator = new AutoGenerator(
//                new DataSourceConfig.Builder(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD).build()
//        );
//
//        // 全局配置（修正点1：使用disableOpenDir替代openDir）
//        GlobalConfig globalConfig = new GlobalConfig.Builder()
//                .outputDir(System.getProperty("user.dir") + "/src/main/java")
//                .author("xk")
//                .disableOpenDir() // 禁止打开输出目录（3.5.3+版本方法）
//                .enableSwagger()
//                .fileOverride()
//                .build();
//
//        // 包配置
//        PackageConfig packageConfig = new PackageConfig.Builder()
//                .parent("com.xk.school_device")
//                .moduleName("")
//                .entity("entity")
//                .mapper("mapper")
//                .service("service")
//                .controller("controller")
//                .build();
//
//        // 策略配置（修正点2：命名策略移动到entityBuilder）
//        StrategyConfig strategyConfig = new StrategyConfig.Builder()
//                .addInclude(tables) // 包含所有表
//                //.addTablePrefix() // 如果表没有前缀可删除该配置
//                .entityBuilder()
//                .naming(NamingStrategy.underline_to_camel) // 实体类命名策略
//                .columnNaming(NamingStrategy.underline_to_camel) // 字段命名策略
//                .enableLombok()
//                .enableChainModel()
//                .controllerBuilder()
//                .enableRestStyle()
//                .build();
//
//        // 注入配置
//        generator.global(globalConfig)
//                .packageInfo(packageConfig)
//                .strategy(strategyConfig);
//
//        // 执行生成
//        generator.execute();
//    }
//
//    // 获取数据库所有表名（保持不变）
//    private static List<String> getAllTables() {
//        List<String> tables = new ArrayList<>();
//        Connection conn = null;
//
//        try {
//            conn = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD);
//            DatabaseMetaData metaData = conn.getMetaData();
//
//            ResultSet rs = metaData.getTables(null, null, "%", new String[]{"TABLE"});
//
//            while (rs.next()) {
//                String tableName = rs.getString("TABLE_NAME");
//                tables.add(tableName); // 不再过滤表名
//            }
//        } catch (SQLException e) {
//            throw new RuntimeException("获取数据库表失败", e);
//        } finally {
//            if (conn != null) {
//                try {
//                    conn.close();
//                } catch (SQLException e) {
//                    e.printStackTrace();
//                }
//            }
//        }
//        return tables;
//    }
//}
